# -*- coding: utf-8 -*-
"""
Created on Fri Oct 18 21:50:01 2024

@author: 焊板子的兔子
"""

"""
QComboBox下拉列表框控件提供一个下拉式选项列表供用户选择
1、下拉列表控件每行除文字外，还可以设置图标
2、下拉列表每行可以设置一个关联数据，类型任意
实例化方法
QComboBox(parent:QWidget=None)
"""
import sys
from PySide6.QtWidgets import QApplication,QWidget,QComboBox,QPlainTextEdit
from PySide6.QtCore import QSize


class myWidget(QWidget):
    def __init__(self, parent = None):
        super().__init__(parent)
        self.setFixedSize(QSize(640,480))#QSize类用于描述尺寸，setFixedSize（）方法用于设置一个固定尺寸窗口
        
        #创建一个列表，用于作为下拉列表框控件的关联数据
        list1 = ['1号数据','2号数据']
        
        #创建一个ComboBox控件
        self.comboBox = QComboBox(self)
        self.comboBox.setGeometry(50,50,150,30)
        self.comboBox.addItem('#1',list1[0])
        self.comboBox.addItem('#2',list1[1])
        
        #创建一个多行纯文本控件，用来显示下拉列表框的内容
        self.plainText = QPlainTextEdit(self)
        self.plainText.setGeometry(200,50,300,200)         
        self.comboBox.activated.connect(self.func1)#用户激活某项时，发送activated信号，同时会发送被激活项的文本和索引        
        
    def func1(self):
        self.plainText.clear()
        self.plainText.appendPlainText('当前索引：'+ str(self.comboBox.currentIndex()))
        self.plainText.appendPlainText('当前选项文本：' + self.comboBox.currentText())
        self.plainText.appendPlainText('当前选项关联数据：' + str(self.comboBox.currentData()))
    

    
        
   
                     
     
if __name__ == "__main__":
    app = QApplication.instance()   #一个应用程序实例对象
    if app is None:
        app = QApplication()
    myWindow = myWidget()
    myWindow.show()
    n = app.exec()
    sys.exit(n)